/*!
 * \mainpage UNIFIEO - Ciencia da Computação - 2BN
 *
 * \author
 * Rafael Bueno
 * Rodrigo de Almeida
 * Maricelia
 * Paulo Rabelo
 * Sergio
 *
 * \date 02/12/2008
 * \version 2.0
 *
 * O objetivo é testar os objetos envolvidos no caso de uso 6 do projeto
 * kisebo
 *
 * Maiores informações podem ser vistas no site do grupo
 *
 * http://code.google.com/p/cco-kisebo/
 *
 * http://groups.google.com.br/group/2008-2an-pc2-unifieo
 */

#include "..\kisebo\Controlador.h"
#include "..\kisebo\Interesse.h"
#include "..\console\TelaCliente.h"
#include "..\console\TelaPrincipal.h"
#include "..\kisebo\Usuario.h"
#include "..\generico\Funcoes.h"

/**
 * @fn void tTelaPrincipal()
 * brief Método utilizado para testar o projeto todo.
 */
void tTelaPrincipal();

/**
 * @fn void tTelaCliente()
 * brief Método utilizado para testar o projeto a partir da tela de cliente.
 */
void tTelaCliente();

/**
 * @fn void tMontaPesquisa()
 * brief Método utilizado para testar a montagem de pesquisa dos livros por interesse.
 */
void tMontaPesquisa();

/**
 * @fn void tPesquisaInteresse()
 * brief Método utilizado para testar a pesquisa de uma chave na árvore do interesse selecionado.
 */
void tPesquisaInteresse();

/**
 * @fn void tAtualizaCliente()
 * brief Método utilizado para testar a atualização de um cliente.
 */
void tAtualizaCliente();

/**
 * @fn int main()
 * brief Método principal para testar um projeto.
 * Para testar cada um dos métodos de teste, devemos habilitar \n
 * apenas o que vai ser utilizado.
 */
int main() {

	tTelaPrincipal();
	//tTelaCliente();
	//tMontaPesquisa();
	//tPesquisaInteresse();
	//tAtualizaCliente();

}

void tTelaPrincipal(){

	Usuario *usuario = new Usuario();
	usuario->SetID(7113844);
	usuario->SetNome("rafael");
	usuario->SetLogin("rbueno");
	usuario->SetTipoUsuario(Usuario::CLIENTE);

	Controlador *Sistema = new Controlador();
	Sistema->RegistraUsuario(*usuario);

	TelaPrincipal *telaPrincipal;
	telaPrincipal = new TelaPrincipal(Sistema);

}

void tTelaCliente(){

	Controlador *Sistema = new Controlador();
	TelaCliente *telaCliente;
	telaCliente = new TelaCliente(Sistema);

}

void tMontaPesquisa(){

	Controlador *Sistema = new Controlador();
	Sistema->MontaPesquista(Interesse::AUTOR);

	cout << endl << "Pesquisa montada" << endl << endl;

	Funcoes::PausarPrograma();

}

void tPesquisaInteresse(){

	Controlador *Sistema = new Controlador();
	vector<Livro> livros = Sistema->PesquisaInteresses("bueno, rafael ademir");

	cout << endl << "Lista de livros encontrados: " << endl << endl;

	for(int i=0;i<(int)livros.size();i++){
		cout << livros[i];
	}

	Funcoes::PausarPrograma();

}

void tAtualizaCliente(){

}
